module.exports = bitmap2gcode2;

const { initGcodeParams, initBitmapParams } = require('./params');
const { processImage } = require('./process_image');
const { generateGcode } = require('./gcode_generation');
const GCodeDriver = require('../drivers/gcode');

function bitmap2gcode2(bitmapData, gcodeParams, deviceConfig = {}) {
    // 1. 参数处理
    gcodeParams = initGcodeParams(gcodeParams);
    bitmapData = initBitmapParams(bitmapData);
    
    // 2. 图片处理
    const imageData = processImage(bitmapData, gcodeParams);
    
    // 3. 生成Gcode
    var gcode = [];
    var gcodeDriver = new GCodeDriver({
        write: function (str) {
            gcode.push(str); // 将接收到的字符串写入 gcode 变量
        }
      }, gcodeParams);
    generateGcode(gcode, gcodeDriver, imageData, bitmapData, gcodeParams);
    
    return gcode;
}

